<html>
 
<head>
<title>TThreadPersistent</title>
  <link rel="stylesheet" href="../../../../../Styles/Default.css">
  <meta name="Ancestor" content="TPersistent">
</head>

<body bgcolor="#FFFFFF">
<h2>Description</h2>
<p class="Body"><span class="EmptyRef">TRenderThread</span> extends the standard 
  <span class="API">TPersistent</span> class with the thread-safe locking and 
  declares change notification events. </p>
<p class="Body">The locking provides means of syncronization of simultaneous access 
  to the same resource in applications with multiple threads and it works similar 
  to that in <span class="API">TCanvas</span> class. For additional information, 
  see Delphi documentation on <span class="API">TCanvas</span>. </p>
<p class="Body">This class also declares change notification abilities. That is, 
  it provides methods and events allowing it descendants to issue notification 
  on their changes. For example, <a href="../../../GR32/Classes/TBitmap32/_Body.htm">TBitmap32</a> 
  uses <a href="../../../GR32/Classes/TNotifiablePersistent/Events/OnChange.htm">OnChange</a> to notify its container (usually 
  <a href="../../../GR32_Image/Classes/TImage32/_Body.htm">TImage32</a> or <a href="../../../GR32_Layers/Classes/TBitmapLayer/_Body.htm">TBitmapLayer</a>) 
  that it was modified and its data has to be repainted to the screen. <span class="EmptyRef">TThreadPersistent</span>, 
  however, does not use or implement automatic change notification itself. This 
  is done in descendants.</p>
</body>

</html>

